/**
 * 分页
 */
package helper;

/**
 * @author Chigco.Orc
 *	
 */
public class PageBean {
	
	 private int pageSize = 10; // 每页大小
	
	 private int rowCounts; // 总记录数 
	 
	 private int pageCounts; // 页面总数 
	 
	 private int curPageNum; // 当前页码 
	 
//	 private String connTable; // 连接的表名 
	 
	 private int curPageFirst; // 当前页第一条记录的编号 
	 
//	 private Connection conn;
	
	/** 
	 * 默认构造要领 
	 */ 
	 public PageBean() { 
	 } 
	 
	 /** 
	 * 带参构造要领 
	 * 
	 * @param conn 
	 */ 
	 public PageBean( int curPageNum) { 
//	 this.conn = conn; 
//	 this.connTable = connTable; 
	 this.curPageNum = curPageNum; 
	 this.initThePage(); // 加载配置 
	 } 
	 
	 /** 
	 * 原始化当前页的配置 
	 */ 
	 public void initThePage() { 
	 
	 // 第一：先配置每页大小 
	 this.setPageSize(10); 
	 
	 // 第二：配置总记录数 
//	 this.setRowCounts(); 
	 
	 // 第三：配置总页数 
	 this.setPageCounts(); 
	 
	 // 第四：配置当前页码 
	 this.setCurPageNum(curPageNum); 
	 
	 // 第五：配置当前页第一条记录的编号 
	 this.setCurPageFirst(this.curPageNum); 
	 } 
	 
	 /** 
	 * 执行分页，返回一个结果集 
	 * 
	 * @return rs 
	 */ 
//	 public ResultSet getPage() { 
//	 ResultSet rs = null; 
//	 String sql = " select * from " + connTable + " limit ?,? "; 
//	 try { 
//	  PreparedStatement ps = conn.prepareStatement(sql); 
//	  ps.setInt(1, curPageFirst); 
//	  ps.setInt(2, pageSize); 
//	  rs = ps.executeQuery(); 
//	 } catch (SQLException e) { 
//	  e.printStackTrace(); 
//	 } 
//	 return rs; 
//	 } 
	 
	 /** 
	 * 得到每页的记录数 
	 * 
	 * @return pageSize 
	 */ 
	 public int getPageSize() { 
	 return pageSize; 
	 } 
	 
	 /** 
	 * 配置每页的记录数 
	 * 
	 * @param pageSize 
	 */ 
	 public void setPageSize(int pageSize) { 
	 this.pageSize = pageSize; 
	 } 
	 
	 /** 
	 * 获取总记录数 
	 * 
	 * @return rowCounts 
	 */ 
	 public int getRowCounts() { 
	 return rowCounts; 
	 } 
	 
	 /** 
	 * 配置总的记录数 
	 * 
	 * @param rowCounts 
	 */ 
//	 public void setRowCounts() { 
//	 String sql = " select count(*) from " + connTable; 
//	 try { 
//	  PreparedStatement ps = conn.prepareStatement(sql); 
//	  ResultSet rs = ps.executeQuery(); 
//	  rs.next(); 
//	  rowCounts = rs.getInt(1); 
//	 } catch (SQLException e) { 
//	  e.printStackTrace(); 
//	 } 
//	 } 
	 
	 /** 
	 * 获取总页数 
	 * 
	 * @return pageCounts 
	 */ 
	 public int getPageCounts() { 
	 return pageCounts; 
	 } 
	 
	 /** 
	 * 配置总页数 
	 * 
	 * @param pageCounts 
	 */ 
	 public void setPageCounts() { 
	 if (rowCounts % pageSize == 0) { 
	  pageCounts = (rowCounts / pageSize); 
	 } else { 
	  pageCounts = (rowCounts / pageSize) + 1; 
	 } 
	 } 
	 
	 /** 
	 * 得到当前页数 
	 * 
	 * @return curPageNum 
	 */ 
	 public int getCurPageNum() { 
	 return curPageNum; 
	 } 
	 
	 /** 
	 * 配置当前页 
	 * 
	 * @param curPageNum 
	 */ 
	 public void setCurPageNum(int curPageNum) { 
		 if (curPageNum <= 1) { 
		  this.curPageNum = 1; 
		 } else if (curPageNum >= this.pageCounts) { 
		  this.curPageNum = this.pageCounts; 
		 } else { 
		  this.curPageNum = curPageNum; 
		 } 
	 } 
	 
	 
	 /** 
	 * 配置当前页第一条的编号 
	 * 
	 * @param curPageFirst 
	 */ 
	 public void setCurPageFirst(int curPageNum) { 
	 curPageFirst = (curPageNum - 1) * pageSize; 
	 } 
	 
	 /** 
	 * 获取当前页的第一条的编号 
	 * 
	 * @return curPageFirst 
	 */ 
	 public int getCurPageFirst() { 
	 return curPageFirst; 
	 } 
 

}
